Pitch shifting is a technique used to harmonically transpose a sampled audio signal without altering either its time duration or relative frequency content. Pitch shifting is important to a number of broadcasting and recording applications, such as karaoke and tapeless answering machines.
For analog systems such as vinyl records, pitch shifting is straightforward, and can be accomplished by increasing or decreasing a record's rotation speed from the standard number of revolutions per minute (RPM), such as from 33 RPM to 45 RPM. However, this analog technique alters both time duration and tempo, and thus does not result in the desired pitch-shifting characteristics.
Digital systems may also perform pitch shifting, but known digital systems also fail to provide ideal pitch-shifting characteristics. One digital technique which may be used in pitch shifting is known as the direct technique. According to the direct technique, a digital signal is sampled at a first rate, stored in a circular buffer at a second, different rate, and output from the buffer at the first rate. The ratio between the first and second rates determines the amount of pitch shifting. The problem with this technique is that the output signal will be "jumpy", i.e., occasionally discontinuous due to a lack of smoothing of the output signal.
Another digital technique which may be used for real-time pitch shifting is the sample-rate conversion technique disclosed by S. Park, "A Real-Time Method for Sample-Rate Conversion from CD to DAT," Proceedings of the 9th Int. Conf. on Consumer Electronics, Chicago, Ill., Jun. 18-20, 1990, pp. 360-361. This technique uses the same circular buffer as the direct technique to maintain real-time operation. The sample-rate conversion technique computes the pitch-shifted output sample as an interpolated value between two input samples using digital filtering. While this method eliminates the discontinuities associated with the direct technique and provides good performance in some applications, it still introduces harmonic distortion. Since the data must be processed in real-time, there will periodically be overrun and underrun states between the input and output pointers. For example, if the pitch is to be lowered, the input pointer cycles through the buffer more quickly than the output pointer. If the input pointer "passes" the output pointer and at the same time overwrites data from a different point in its waveform, the next output sample will be discontinuous. These discontinuities in the output waveform result in undesirable non-harmonic distortion. What is needed is a signal processing system for real-time pitch shifting which provides an output signal with lower distortion than that provided by known digital techniques.